/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package gui;
import basicas.Artista;
import java.util.List;
import javax.faces.application.FacesMessage;
import javax.faces.bean.ManagedBean;
import javax.faces.context.FacesContext;
import negocio.Fachada;

/**
 *
 * @author Jefferson
 */
@ManagedBean  // @ManagedBean(name=�msg�)
public class ArtistaBean {
    
    private Artista artista;
    private List<Artista> listArtista;
    private int codigoBusca;
    private List<Artista> filteredArt;
        
    public ArtistaBean() {
        artista = new Artista();                 
    }
    
    public void inserir(){
        Fachada fachada = Fachada.getInstancia();
        
        try {
                if(validarForm(artista)){
                    fachada.inserirArtista(artista);   
                    artista = null;
                }
        } catch (Exception e) {
            FacesContext.getCurrentInstance().addMessage(null, new FacesMessage(FacesMessage.SEVERITY_ERROR,"Erro", "Erro na operação")); 
        }
    }
    
     public void alterar() {
        try {
            if(validarForm(artista)){
                Fachada.getInstancia().alterarArtista(artista);                
            }
        } catch (Exception e) {
            FacesContext.getCurrentInstance().addMessage(null, new FacesMessage(FacesMessage.SEVERITY_ERROR,"Erro", "Erro na operação"));
        }
    }
    
    public void remover(Artista partista){	        
        try {            
            Fachada.getInstancia().removerArtista(partista);
        } catch (Exception e) {
            FacesContext.getCurrentInstance().addMessage(null, new FacesMessage(FacesMessage.SEVERITY_ERROR,"Erro", "Erro na operação"));
        }                		
    }

    public String alterarArtista(Artista partista){
        artista = partista;
        return "alterarartista.xhml";
        //String cartista = artistaSelecionado.getCodigo()+"";
        //return "alterarartista.xhml?faces-redirect=true&cartista=" + cartista;
    }

    public void buscar(){
        artista = Fachada.getInstancia().getArtistaByCodigo(codigoBusca);
        if(artista == null){
            FacesContext.getCurrentInstance().addMessage(null, new FacesMessage(FacesMessage.SEVERITY_WARN,"Artista não encontrado!", ""));
        }
    }
    
     private boolean validarForm(Artista artista){
        boolean critica = false;
        
        if(artista.getNome().equals("")){
            FacesContext.getCurrentInstance().addMessage(null, new FacesMessage(FacesMessage.SEVERITY_WARN,"Preencha o nome!", ""));
            critica = true;
        }
        if(artista.getTelefone().equals("")){
            FacesContext.getCurrentInstance().addMessage(null, new FacesMessage(FacesMessage.SEVERITY_WARN,"Preencha o telefone!", ""));
            critica = true;
        }         
        
        return critica ? false : true;
    }
     
    public List<Artista> getListaArtistas() {
        Fachada fachada = Fachada.getInstancia();
        listArtista = fachada.listarArtistas();
        return listArtista;
    }

    public Artista getArtista() {
        return artista;
    }

    public void setArtista(Artista artista) {
        this.artista = artista;
    }

    public int getCodigoBusca() {
        return codigoBusca;
    }

    public void setCodigoBusca(int codigoBusca) {
        this.codigoBusca = codigoBusca;
    }
    
    public List<Artista> getFilteredArt() {
        return filteredArt;
    }

    public void setFilteredArt(List<Artista> filteredArt) {
        this.filteredArt = filteredArt;
    }
    
}
